/**
 * @param {number} n
 * @param {number} k
 * @return {number[][]}
 */
 var combine = function(n, k) {   //  深搜，直到group等于k，回溯
    let res=[];
    def(1,[]);
    return res;
    function def(i,group){
        let length=group.length;
        if(length==k){
            res.push([...group]);
            return ;
        }
        if(n-i<k-length-1){  // 剪枝
            return ;
        }
        for(let j=i;j<=n;j++){
            group.push(j);
            def(j+1,group);
            group.pop();
        }
    }
};

console.log(combine(4,2));